home *** CD-ROM | disk | FTP | other *** search
- ; ___________________________________________________________________________
- ; |*************************************************************************|
- ; |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
- ; |*| Set TAB to 15 for best readable file layout. |*| HiSoft DevPac 3.04 |*|
- ; |*|______________________________________________|*|____________________|*|
- ; |*************************************************************************|
- ; |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
- ; |*| |*| $Id: extra_lib.i (28.04.01) |*|
- ; |*| ###### ###### |*| RhoSigma Source based on NDK 3.1 Includes 40.15 |*|
- ; |*| ## ## ## # |*| _________________________________________________ |*|
- ; |*| ## ## ## |*| |*|
- ; |*| ###### ## |*| The vector offsets of extra.libary's functions |*|
- ; |*| ## ## |*| |*|
- ; |*| ## ## # |*| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |*|
- ; |*| ## ###### |*| Copyright © 1998-2001 RhoSigma, Roland Heyder |*|
- ; |*| |*| All Rights Reserved. |*|
- ; |*|_______________|*|___________________________________________________|*|
- ; |*************************************************************************|
- ; ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
-
- IFND EXTRA_LIB_I
- EXTRA_LIB_I SET 1
-
- ** start bias (-30) **
- ** private (-30) **
- ** private (-36) **
- _LVO_EXTRA_BAMCheckSum = -42
- _LVO_EXTRA_BootBlockSum = -48
- _LVO_EXTRA_DiskBlockSum = -54
- _LVO_EXTRA_OpenBuf = -60
- _LVO_EXTRA_CloseBuf = -66
- _LVO_EXTRA_FileToBuf = -72
- _LVO_EXTRA_BufToFile = -78
- _LVO_EXTRA_ClearBuf = -84
- _LVO_EXTRA_DuplicateBuf = -90
- _LVO_EXTRA_BufInfo = -96
- _LVO_EXTRA_SeekBuf = -102
- _LVO_EXTRA_Store = -108
- _LVO_EXTRA_InsertBuf = -114
- _LVO_EXTRA_InsertFile = -120
- _LVO_EXTRA_Replace = -126
- _LVO_EXTRA_Get = -132
- _LVO_EXTRA_Clear = -138
- _LVO_EXTRA_FindData = -144
- _LVO_EXTRA_FindNext = -150
- _LVO_EXTRA_FindPrev = -156
- _LVO_EXTRA_FreeFinds = -162
- _LVO_EXTRA_SetBookmark = -168
- _LVO_EXTRA_GotoBookmark = -174
- _LVO_EXTRA_FindString = -180
- _LVO_EXTRA_GetLength = -186
- _LVO_EXTRA_LastError = -192
- _LVO_EXTRA_LongToString = -198
- _LVO_EXTRA_StringToLong = -204
- _LVO_EXTRA_PackByteRun1 = -210
- _LVO_EXTRA_UnpackByteRun1 = -216
- _LVO_EXTRA_PrintIoError = -222
- _LVO_EXTRA_FlipCase = -228
- _LVO_EXTRA_CmpMem = -234
- _LVO_EXTRA_CopyMemI = -240
- _LVO_EXTRA_FillMem = -246
- _LVO_EXTRA_GetMem = -252
- _LVO_EXTRA_UnGetMem = -258
- _LVO_EXTRA_OutlineOff = -264
- _LVO_EXTRA_OutlineOn = -270
- _LVO_EXTRA_SetOPen = -276
- _LVO_EXTRA_SpecText = -282
- _LVO_EXTRA_SpecTextPrefs = -288
- _LVO_EXTRA_ShowMsg = -294
- _LVO_EXTRA_v2_OpenBuf = -300
- _LVO_EXTRA_v2_FileToBuf = -306
- _LVO_EXTRA_v2_DuplicateBuf = -312
-
- IFEQ __LK-3
- ;----------------------------------------------------------------------------
- ; Die alten Symbole nach NDK-Norm werden nur noch verwendet, wenn linkbarer
- ; Code erzeugt wird. Außerdem werden diese Symbole auch gleich exportiert.
- ; Dies geschieht alles in weiser Voraussicht auf die eventuelle Einbindung
- ; der amiga.lib o.ä., welche natürlich nur die alten NDK-Symbole kennt.
- ; Würde dies nicht gemacht, dann wird der Linker sich über viele undefinierte
- ; Symbole beschweren...
- ;----------------------------------------------------------------------------
- ** start bias (-30) **
- ** private (-30) **
- ** private (-36) **
- _LVOBAMCheckSum = -42
- _LVOBootBlockSum = -48
- _LVODiskBlockSum = -54
- _LVOOpenBuf = -60
- _LVOCloseBuf = -66
- _LVOFileToBuf = -72
- _LVOBufToFile = -78
- _LVOClearBuf = -84
- _LVODuplicateBuf = -90
- _LVOBufInfo = -96
- _LVOSeekBuf = -102
- _LVOStore = -108
- _LVOInsertBuf = -114
- _LVOInsertFile = -120
- _LVOReplace = -126
- _LVOGet = -132
- _LVOClear = -138
- _LVOFindData = -144
- _LVOFindNext = -150
- _LVOFindPrev = -156
- _LVOFreeFinds = -162
- _LVOSetBookmark = -168
- _LVOGotoBookmark = -174
- _LVOFindString = -180
- _LVOGetLength = -186
- _LVOLastError = -192
- _LVOLongToString = -198
- _LVOStringToLong = -204
- _LVOPackByteRun1 = -210
- _LVOUnpackByteRun1 = -216
- _LVOPrintIoError = -222
- _LVOFlipCase = -228
- _LVOCmpMem = -234
- _LVOCopyMemI = -240
- _LVOFillMem = -246
- _LVOGetMem = -252
- _LVOUnGetMem = -258
- _LVOOutlineOff = -264
- _LVOOutlineOn = -270
- _LVOSetOPen = -276
- _LVOSpecText = -282
- _LVOSpecTextPrefs = -288
- _LVOShowMsg = -294
- _LVOv2_OpenBuf = -300
- _LVOv2_FileToBuf = -306
- _LVOv2_DuplicateBuf = -312
-
- XDEF _LVOBAMCheckSum
- XDEF _LVOBootBlockSum
- XDEF _LVODiskBlockSum
- XDEF _LVOOpenBuf
- XDEF _LVOCloseBuf
- XDEF _LVOFileToBuf
- XDEF _LVOBufToFile
- XDEF _LVOClearBuf
- XDEF _LVODuplicateBuf
- XDEF _LVOBufInfo
- XDEF _LVOSeekBuf
- XDEF _LVOStore
- XDEF _LVOInsertBuf
- XDEF _LVOInsertFile
- XDEF _LVOReplace
- XDEF _LVOGet
- XDEF _LVOClear
- XDEF _LVOFindData
- XDEF _LVOFindNext
- XDEF _LVOFindPrev
- XDEF _LVOFreeFinds
- XDEF _LVOSetBookmark
- XDEF _LVOGotoBookmark
- XDEF _LVOFindString
- XDEF _LVOGetLength
- XDEF _LVOLastError
- XDEF _LVOLongToString
- XDEF _LVOStringToLong
- XDEF _LVOPackByteRun1
- XDEF _LVOUnpackByteRun1
- XDEF _LVOPrintIoError
- XDEF _LVOFlipCase
- XDEF _LVOCmpMem
- XDEF _LVOCopyMemI
- XDEF _LVOFillMem
- XDEF _LVOGetMem
- XDEF _LVOUnGetMem
- XDEF _LVOOutlineOff
- XDEF _LVOOutlineOn
- XDEF _LVOSetOPen
- XDEF _LVOSpecText
- XDEF _LVOSpecTextPrefs
- XDEF _LVOShowMsg
- XDEF _LVOv2_OpenBuf
- XDEF _LVOv2_FileToBuf
- XDEF _LVOv2_DuplicateBuf
- ;----------------------------------------------------------------------------
- ENDC
-
- ;*** lvo / Lib-Call-Macro ***
- ;============================================================================
- ; Dieses Macro dient zum Aufruf einer Funktion aus der dazugehörigen Library.
- ; Dabei ist dieses Macro gegenüber den CALL-Macros des NDK jedoch so intelli-
- ; gent, daß es erkennt, ob mit ihm auch wirklich eine Funktion der zugehörigen
- ; Library aufgerufen wird. Damit wird vermieden, daß versehendlich z.B. eine
- ; Funktion der exec.library mit dem Macro (und damit natürlich auch dem Zeiger)
- ; der graphics.library aufgerufen werden kann, was höchstwahrscheinlich sofort
- ; einen Systemabsturz nach sich ziehen würde.
- ; Außerdem haben Optimal-Programmierer auch die Möglichkeit Quick-Aufrufe zu
- ; verwenden, um jedes überflüssige Byte einzusparen. Für die Programmierung re-
- ; entranter Programme ist ebenfalls eine Syntax definiert, bei der die voll-
- ; ständige effektive Addresse des Basis-Zeigers als Parameter übergeben werden
- ; muß, da dort ja keine flüchtigen absoluten Adressen verwendet werden dürfen.
- ;----------------------------------------------------------------------------
- ; Definiert: ... _lib.i (Copyright © 1998-2001 RhoSigma, Roland Heyder)
- ;
- ; Schablone: Func/A, Opts/F/S
- ;
- ; Parameter: Func --> Name der aufzurufenden Funktion ohne »_LVO_LIBNAME_«
- ;
- ; Opts --> - das Schlüsselwort »OK« für einen QuickJump-Aufruf
- ; (s. Bemerkung)
- ;
- ; - Opts weglassen, um Basis-Symbol »_LibnameBase« ins
- ; Register A6 zu laden
- ;
- ; - die effektive Adresse, welche die Basis der Library
- ; enthält (z.B. »globals_Libname(a5)«)
- ;
- ; Bemerkung: Wird das Schlüsselwort »OK« angegeben, dann wird davon ausge-
- ; gangen, daß die richtige Basisadresse der Library bereits im
- ; Register A6 steht, und es wird sofort in die Funktion gesprungen.
- ;============================================================================
-
- DOEXTRA MACRO (Func/A, Opts/F/S)
- ;--------------------------------
-
- IFND _LVO_EXTRA_\1
- FAIL ** Function undefined or wrong Library **
- ENDC
-
- ;OK for opts means base ready, no baseloading needed
-
- IFC '\2','OK'
- jsr _LVO_EXTRA_\1(a6)
- MEXIT
- ENDC
-
- ;nothing means, load static base (for non-pure code only)
-
- IFC '\2',''
- movea.l _ExtraBase,a6
- jsr _LVO_EXTRA_\1(a6)
- MEXIT
- ENDC
-
- ;else opts should be the entire baselocation (for pure code)
-
- movea.l \2,a6
- jsr _LVO_EXTRA_\1(a6)
-
- ;--------------------------------
- ENDM ;DOEXTRA
-
- ENDC ;extra_lib.i
-